package com.iot.device.service;

import java.util.List;
import java.util.Map;
import java.util.Set;

import com.iot.device.domain.GasClient;

/**
 * 燃气监测设备Service接口
 * 
 * @author iot
 * @date 2023-04-14
 */
public interface IGasClientService 
{
    /**
     * 查询燃气监测设备
     * 
     * @param id 燃气监测设备主键
     * @return 燃气监测设备
     */
    public GasClient selectGasClientById(Long id);

    /**
     * 查询燃气监测设备列表
     * 
     * @param gasClient 燃气监测设备
     * @return 燃气监测设备集合
     */
    public List<GasClient> selectGasClientList(GasClient gasClient);

    /**
     * 新增燃气监测设备
     * 
     * @param gasClient 燃气监测设备
     * @return 结果
     */
    public int insertGasClient(GasClient gasClient);

    /**
     * 修改燃气监测设备
     * 
     * @param gasClient 燃气监测设备
     * @return 结果
     */
    public int updateGasClient(GasClient gasClient);

    /**
     * 批量删除燃气监测设备
     * 
     * @param ids 需要删除的燃气监测设备主键集合
     * @return 结果
     */
    public int deleteGasClientByIds(Long[] ids);

    /**
     * 删除燃气监测设备信息
     * 
     * @param id 燃气监测设备主键
     * @return 结果
     */
    public int deleteGasClientById(Long id);

    GasClient selectGasClientByClientNo(String clientNo);

    void updateGasClientByClientNo(GasClient gasClient);

    Set<String> selectGasClientNosByUserId(Long userId);

    Map<String, Long> countGasClientsByUserId(Long userId);

    List<GasClient> selectGasClientWithInfos(GasClient queryGasClient);

    Map<String, Long> selectGasClientStatistics(Long userId);
}
